package com.appium.manager.element.anno.interceptor;


import com.appium.manager.element.anno.PageElement;
import com.appium.manager.template.AnnoAppiumHybridTemplate;

/**
 * <p>
 *     页面通用拦截器
 *     可以将一些固定操作以拦截器的形式保存下来
 *     在某些测试方法被调用前,拦截器会先被调用
 * </p>
 * @author 大忽悠
 * @create 2022/7/8 16:15
 */
public interface PageInterceptor  {



    public default void invoke(PageElement pageElement, AnnoAppiumHybridTemplate appiumHybridTemplate) throws InterruptedException {
         appiumHybridTemplate.initElements(this);
         doInvoke(pageElement, appiumHybridTemplate);
    }

    public void doInvoke(PageElement pageElement, AnnoAppiumHybridTemplate appiumHybridTemplate) throws InterruptedException;
}

